#ifndef _PLATFORM_GPIO_H
#define _PLATFORM_GPIO_H

#include <N76E003.h>

#define IO_MODE_IN_OUT			0x0		// 输入
#define IO_MODE_PUSH_PULL_OUT	0x1		// 双向
#define IO_MODE_IN				0x2		// 推挽输出
#define IO_MODE_OPEN_DRAIN_OUT	0x3		// 开漏输出

/** 
 * gpio_set_mode - 设置引脚io模式
 * @port: 端口号
 * @pin: 引脚号
 * @mode: 见IO_MODE_
 *
 * 例如: 以下代码设置 P1.2 为推挽输出模式
 * 			gpio_set_mode(1, 2, IO_MODE_PUSH_PULL_OUT)
 */
#define gpio_set_mode(port, pin, mode) \
	mode & 0x1 ? set_bit(P##port##M1, pin) : clr_bit(P##port##M1, pin); \
	mode & 0x2 ? set_bit(P##port##M2, pin) : clr_bit(P##port##M2, pin)

#endif
